function debounce(func, delay) {
    let timeoutId;
  
    return function(event) {
      clearTimeout(timeoutId);
      timeoutId = setTimeout(() => {
        func.call(this, event);
        //func.apply(this.[event])
      }, delay);
    };

  }

  let inputHandler = debounce((event)=>{
    console.log(event);
  },500)

  //debounce 函数本身不会立即执行。 
  //它返回一个新的函数作为结果，而这个新函数才是被绑定到 input 事件的事件处理函数。
  Input.addEventlistener('input',inputHandler)   //inputHandler是事件监听器的回调函数，回调会传event参数